Fixes bug #383407
authorPaolo Maggi <paolo@gnome.org>
Thu, 7 Dec 2006 17:01:16 +0000 (17:01 +0000)
committerPaolo Maggi <paolo@src.gnome.org>
Thu, 7 Dec 2006 17:01:16 +0000 (17:01 +0000)
2006-12-07  Paolo Maggi  <paolo@gnome.org>

Fixes bug #383407

* gtk/gtkentry.c (gtk_entry_set_text): check for
completion->priv->changed_id > 0 before calling
g_signal_handler_[un]block.
(gtk_entry_completion_key_press): does not block/unblock the
"changed"
signal before calling gtk_entry_set_text.

ChangeLog
gtk/gtkentry.c

index 0a7139172e69c0acb1b05ceecb3af05c9a81d6ca..76ebf663ad0fb51abd22373d3ce74a78d1245cf9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-12-07  Paolo Maggi  <paolo@gnome.org>
+
+       Fixes bug #383407
+       
+       * gtk/gtkentry.c (gtk_entry_set_text): check for
+       completion->priv->changed_id > 0 before calling 
+       g_signal_handler_[un]block.
+       (gtk_entry_completion_key_press): does not block/unblock the "changed"
+       signal before calling gtk_entry_set_text.
+       
 2006-12-07  Carlos Garnacho  <carlosg@gnome.org>
 
        * gtk/gtkcellrendererprogress (compute_dimensions): do not use
index 30f96f1072bd591968ced65139dc966153b6dde5..2656a316c46ac2ef9af49b17395c5452aee66dc0 100644 (file)
@@ -4183,7 +4183,7 @@ gtk_entry_set_text (GtkEntry    *entry,
     return;
 
   completion = gtk_entry_get_completion (entry);
-  if (completion)
+  if (completion && completion->priv->changed_id > 0)
     g_signal_handler_block (entry, completion->priv->changed_id);
 
   gtk_editable_delete_text (GTK_EDITABLE (entry), 0, -1);
@@ -4191,7 +4191,7 @@ gtk_entry_set_text (GtkEntry    *entry,
   tmp_pos = 0;
   gtk_editable_insert_text (GTK_EDITABLE (entry), text, strlen (text), &tmp_pos);
 
-  if (completion)
+  if (completion && completion->priv->changed_id > 0)
     g_signal_handler_unblock (entry, completion->priv->changed_id);
 }
 
@@ -5646,9 +5646,7 @@ gtk_entry_completion_key_press (GtkWidget   *widget,
                                   completion->priv->text_column, &str,
                                   -1);
 
-              g_signal_handler_block (widget, completion->priv->changed_id);
               gtk_entry_set_text (GTK_ENTRY (widget), str);
-              g_signal_handler_unblock (widget, completion->priv->changed_id);
 
               /* move the cursor to the end */
               gtk_editable_set_position (GTK_EDITABLE (widget), -1);